package cn.sdut.socket.bio.tcp;

import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * Created by majiatao
 * TCP: 是基于IO流进行数据传输的 面向连接
 *      进行数据传输的时候是没有大小限制的
 *      面向连接，通过三次握手的机制保证数据的完整性，可靠协议
 *      优点：要通过三次的握手完成连接，是可靠的连接。
 *      缺点：必须建立连接才能传输数据，效率会较低。
 *      TCP是区分客户端和服务端的。
 * Java中涉及的类：
 *      - Socket
 *      - ServerSocket
 */
public class TcpServer {
    public static void main(String[] args) throws Exception{
        // 建立TCP服务，并且监听一个端口
        ServerSocket serverSocket = new ServerSocket(9191);
        // 接收客户端的连接
        Socket acceptSocket = serverSocket.accept();
        // 获取输入流,读取客户端发送的内容
        InputStream inputStream = acceptSocket.getInputStream();
        byte[] dataByte = new byte[1024];
        int length = inputStream.read(dataByte);
        System.out.println("服务端接收：" + new String(dataByte, 0, length));
        // 关闭资源
        serverSocket.close();
    }
}
